<template>
  <!-- 这是一个无UI的功能组件 -->
</template>

<script>
export default {
  name: 'RequestComponent',
  props: {
    url: {      //请求地址
      type: String,
      required: true
    },
    method: {    //请求方法
      type: String,
      default: 'GET',
      validator: value => ['GET', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(value.toUpperCase())
    },
    requestData: {       //返回的结果
      type: Object,
      default: () => ({})
    },
    headers: {     //？
      type: Object,
      default: () => ({})
    }
  },
  methods: {
    sendRequest() {
      return new Promise((resolve, reject) => {
        // 在实际项目中，这里应该使用 uni.request
        // 为了演示目的，我们模拟网络请求
		/*
        // setTimeout(() => {
        //   // 模拟成功响应
        //   if (Math.random() > 0.3) {
        //     resolve({
        //       statusCode: 200,
        //       data: {
        //         code: 200,
        //         message: '请求成功',
        //         data: {
        //           token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9',
        //           userId: 'u_' + Math.random().toString(36).substr(2, 9),
        //           username: this.requestData.username || 'guest',
        //           expiresIn: 3600,
        //           timestamp: new Date().toISOString()
        //         }
        //       }
        //     });
        //   } else {
        //     // 模拟失败响应
        //     reject({
        //       statusCode: 401,
        //       errMsg: '登录失败: 用户名或密码错误'
        //     });
        //   }
        // }, 1500);
		*/
	   uni.request({
	   	url:this.$props.url,
		method:this.$props.method,
		data:this.$props.requestData,
		header:this.$props.header,
		success:res=>{
			resolve(res)
		},
		fail:err=>{
			reject(err)
		}
	   })
	   
      });
    }
  },
  mounted() {
    // 组件挂载时触发请求（可选）
    // this.sendRequest().then(...).catch(...);
  }
}
</script>